{#if loadError}
{loadError}
{:else} {#await currentUserIdentity}
{:then identity} {@const isOwner = identity && identity.name === data.username} {#if isOwner}
Back to Profile
•
{ if (editMode) selectedBadge = undefined; editMode = !editMode; }} > {editMode ? 'Disable' : 'Enable'} Edit Mode
•
(downloadDisabled ? undefined : screenshot())}>Download
•
Dark Mode
Transparent Background {#if editMode && isOwner}
{#if error}
{error}
{/if}
{selectedBadge ? 'Update' : 'Add'}
{#if selectedBadge} or
{ if (selectedBadge) removeBadge(selectedBadge); }}>Delete (click twice)
{/if}
Must be full date and time, defaults to now if any fields empty
{/if}
{/if}
{#await badgesPromise}
{:then badgesResponse} {#if badgesResponse} {#await badgesResponse.json()}
{:then ungroupedBadges}
{#if ungroupedBadges === null}
{@html nbsp('Loading badges ... 50%')}
{:else if ungroupedBadges.length === 0}
{@html nbsp('No badges found for this user.')}
{:else} {@const groupedBadges = Object.entries(groupBadges(ungroupedBadges))} {#each groupedBadges as [category, badges]}
{category}
{#each badges as badge} {#if editMode}
(selectedBadge = badge)} id={`badge-${badge.id}`} title={`${ badge.time ? databaseTimeToDate(badge.time).toLocaleString() : '' }${badge.description ? `\n${badge.description}` : ''}`} >
{:else}
{/if} {/each}
{#if groupedBadges[groupedBadges.length - 1][0] !== category}
{/if} {/each} {/if}
{:catch}
Could not parse badges
{/await} {:else}
{/if} {:catch}
Could not fetch badges
{/await} {/await} {/if}